/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package gradius.InterfaceGrafica;

import gradius.Elementos.Naves.Vicviper;
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.net.URL;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JButton;
import javax.swing.JPanel;

/** Classe que contém o painel de conteudo da janela de StageClear
 *
 * @author Eduardo
 */
public class StageClear extends JPanel implements ActionListener
{
    private JButton botao;
    private Janela2 frame;
    private Image fundo;
    private int stage;
    private Vicviper j;
    private Janela f;

    /** Construtor da classe StageClear
     *
     * @param f - Janela de StageClear com todas as suas configuraçoes
     * @param stage - Fase atual
     * @param j - Objeto da nave Vicviper
     * @param frame - Frame para StageClear
     */
    public StageClear(Janela2 f, int stage, Vicviper j, Janela frame)
    {
        this.setLayout(new BorderLayout());
        this.f = frame;
        this.stage=stage;
        this.j=j;
        this.frame = f;
        JPanel painel = new JPanel();
        painel.setLayout(new FlowLayout());
        String caminho = "/images/backgrounds/stageclear.png";
        URL url = PainelMenu.class.getResource(caminho);
        fundo = Toolkit.getDefaultToolkit().getImage(url);
        botao = new JButton("Próximo Estágio");
        painel.add(botao);
        painel.setOpaque(false);
        botao.addActionListener(this);
        this.add(painel,BorderLayout.SOUTH);
    }

    /** Método que desenha os elementos na tela
     * @param g - Objeto Graphics para desenho
     */
    @Override
    protected void paintComponent(Graphics g)
    {
        super.paintComponent(g);
        Graphics2D g2 = (Graphics2D)g;
        g2.drawImage(fundo, 0, 0, this);
    }

    /** Método responsavel pela resposta ao evento de clique selecionado
     *
     * @param e - Objeto do evento capturado no clique do botão
     */
    public void actionPerformed(ActionEvent e)
    {
        try {
            f.dispose();
            Janela janela = new Janela(stage, j);
            this.frame.dispose();
        } catch (FileNotFoundException ex) {
            Logger.getLogger(StageClear.class.getName()).log(Level.SEVERE, null, ex);
        } catch (IOException ex) {
            Logger.getLogger(StageClear.class.getName()).log(Level.SEVERE, null, ex);
        }
    }


}
